package com.founder.devwork.dto.res;

import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * DepartmentTreeDTO 用于表示部门树形结构。
 * 提供部门 ID、名称、父部门 ID、工程师数量和子部门列表等字段。
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DepartmentTreeDTO {

    /**
     * 部门ID
     */
    private String id;

    /**
     * 部门名称
     */
    private String name;

    /**
     * 父部门ID
     */
    private String parentId;

    /**
     * 工程师数量
     */
    private long engineerCount;

    /**
     * 子部门列表
     */
    private List<DepartmentTreeDTO> children = new ArrayList<>();

    /**
     * 构造方法（不包含children）
     */
    public DepartmentTreeDTO(String id, String name, String parentId) {
        this.id = id;
        this.name = name;
        this.parentId = parentId;
        this.children = new ArrayList<>();
    }
}
